package com.ruoyi.yf.mapper;

import com.ruoyi.system.domain.SysDept;
import com.ruoyi.system.domain.SysDistricts;
import com.ruoyi.yf.domain.YfHospitalStatus;
import com.ruoyi.yf.domain.YfStorageWarning;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 院内医废预警量配置Mapper接口
 *
 * @author XiaoYi...
 * @date 2020-06-02
 * 273cd5cd-89d0-46c7-811d-1e7beeb11937
 */
public interface YfStorageWarningMapper {
    /**
     * 查询院内医废预警量配置
     *
     * @param id 院内医废预警量配置ID
     * @return 院内医废预警量配置
     * c374b3f2-e033-47d2-8990-c627cd0d7e72
     */
    public YfStorageWarning selectYfStorageWarningById(Long id);

    /**
     * 查询院内医废预警量配置列表
     *
     * @param yfStorageWarning 院内医废预警量配置
     * @return 院内医废预警量配置集合
     * 4cc0cc7a-f65d-4707-9d31-f260265738de
     */
    public List<YfStorageWarning> selectYfStorageWarningList(YfStorageWarning yfStorageWarning);

    /**
     * 新增院内医废预警量配置
     *
     * @param yfStorageWarning 院内医废预警量配置
     * @return 结果
     * 40b944a8-4a24-4c4e-8fc0-c191af827372
     */
    public int insertYfStorageWarning(YfStorageWarning yfStorageWarning);

    /**
     * 修改院内医废预警量配置
     *
     * @param yfStorageWarning 院内医废预警量配置
     * @return 结果
     * 127b4f48-5afd-4b95-aa70-947e96915cdf
     */
    public int updateYfStorageWarning(YfStorageWarning yfStorageWarning);

    /**
     * 删除院内医废预警量配置
     *
     * @param id 院内医废预警量配置ID
     * @return 结果
     * 9d747094-0a81-4ad2-b593-7adb4f943f7a
     */
    public int deleteYfStorageWarningById(Long id);

    /**
     * 批量删除院内医废预警量配置
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     * 07d89b8a-126a-43ae-90e2-8832900630d9
     */
    public int deleteYfStorageWarningByIds(String[] ids);


    /**
     * 查询院内所有医废类型预警量配置列表
     * 8a6836c1-cb06-42f7-af98-2042d53fb8ad
     */
    List<YfStorageWarning> selectYfTypeStorageWarningList(YfStorageWarning yfStorageWarning);


    /**
     * 根据医院id查询医院暂存点
     * bf264aad-3477-4307-b4d1-16d847fffc4a
     */
    List<SysDept> getStangsByHospitalId(Long hospitalId);


    /**
     *  查询登录用户所在机构的地区的下辖区县
     */
    List<SysDistricts> getCountyByDistrictsId(@Param("flag")String flag, @Param("districtsId")Integer districtsId);


    /**
     * 医院暂存点状况
     * 6d56dcc5-3678-4130-b330-f6a40f8b1532
     */
    List<YfHospitalStatus> hospitalStatusList(@Param("deptId") Long deptId, @Param("yfHospitalStatus") YfHospitalStatus yfHospitalStatus);

    /**
     * 单个医院暂存点状况
     * 0b60b31e-733e-432c-b81b-e7d84b71eccb
     */
    List<YfHospitalStatus> hospitalStatus(Long deptId);

    /**
     * 获取医院
     * 5c765e31-6b4d-4063-93c7-b0ca8e4a46b6
     */
    List<SysDept> getHospital(Long deptId);

    /**
     * 院内超期未录入配置列表
     * 6389e46a-e628-4bcb-b8c4-dd7fc82095ec
     */
    List<YfHospitalStatus> hospitalOverdueNotinputList(@Param("deptId") Long deptId,
                                                       @Param("selectType") String selectType,
                                                       @Param("yfHospitalStatus") YfHospitalStatus yfHospitalStatus);

    /**
     * 预警开关修改
     * 5912448f-33b2-4488-ad36-cc32b185068f
     */
    int changeOverdueNotinputSwitchStatus(@Param("stagingId") Long stagingId, @Param("status") String status);


    /**
     * 修改超期未录入预警
     * 68bb1f31-5943-4523-947b-e9106455b2a2
     */
    int updateOverdueNotinput(SysDept sysDept);

    // 根据暂存点查询超过48小时未出库的科室
    //a963b73d-365f-44af-a367-33678e1eb45d
    String getKsNamesByStangId(Long stagingId);


    // 市卫健委及以上，辖区内各医院暂存点状况
    //64d02e93-5f85-4647-99f8-b47b8bbdf131
    List<YfHospitalStatus> districtsWarnStatusList(Long disId);

    // 市卫健委及以上，辖区内各医院暂存点状况（只包括科室类型为10产生的医废）
//    3c904f3c-059c-4770-b306-d4d77981bae3
    List<YfHospitalStatus> districtsCityHospitalInDeptWarnStatusList(Long disId);

    // 市卫健委及以上，科室中的医疗机构状况（统计科室，无需合并暂存点）
//    c35f7047-5a90-4b33-8e71-cec4ea0b7c2f
    List<YfHospitalStatus> districtsCityHospitalInKSWarnStatusList(Long disId);


    // 区县级卫健局 -- 显示区县级卫健局下辖医院预警状况（统计到暂存点）
//    e5046657-90e6-4153-a2e4-8962592fb3ec
    List<YfHospitalStatus> districtsHospitalWarnStatusList(Long disId);

    // 区县级卫健局，辖区内各医院暂存点状况（只包括科室类型为10产生的医废）
//    1d46f51c-ac67-4b01-b2f8-4c490ecbac24
    List<YfHospitalStatus> districtsCountyHospitalInDeptWarnStatusList(Long disId);

    // 区县级卫健局，添加科室中的医疗机构（统计科室，无需合并暂存点）
//    29b916a9-6e20-4c3d-a0b5-0d2a20d2c3ad
    List<YfHospitalStatus> districtsCountyHospitalInKSWarnStatusList(Long disId);


    // 机构层级权限内各医院暂存点状况（科室类型为10的医废）
//    4867c37e-b602-4338-a9d2-25aadaba4b44
    List<YfHospitalStatus> deptHospitalInDeptWarnStatusList(Long deptId);

    // 机构层级权限内各医院的科室中的医疗机构状况（科室类型20到50，无需合并暂存点）
//    db75508a-12ae-457a-8bf7-8db9147b1e3d
    List<YfHospitalStatus> deptHospitalInKSWarnStatusList(Long deptId);

}
